package cn.wolfcode.luowowo.website.util;

import cn.wolfcode.luowowo.cache.util.RedisKeys;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * cookie的工具类
 */
public class CookieUtil {

    public static void addCookie(String name, String value, int time,
                                 HttpServletResponse response){
        //5. 创建cookie对象，以token作为name,tokean的值作为value
        // Cookie c = new Cookie("token","随机值"),
        //设置cookie时间为30分钟，并通过response对象将cookie上传到浏览器中
        Cookie cookie = new Cookie(name,value);
        //设置存活时间
        cookie.setMaxAge(time);
        //共享路径
        cookie.setPath("/");
        //响应到浏览器
        response.addCookie(cookie);
    }

    public static String getToken(HttpServletRequest request,HttpServletResponse response){
        //6. 用户发起一次请求，假设需要用户登录检查（需要获取用户信息）
        //此时可以通过request对象获取所有的cookie对象
        Cookie[] cookies = request.getCookies();
        //7. 遍历所有的cookie对象，查找name为token的cookie对象，
        //并通过cookie的value值去查找redis数据库 获得user对象
        String token = null;
        if(cookies != null && cookies.length>0){
            for (Cookie cookie : cookies) {
                if("token".equals(cookie.getName())){
                    token = cookie.getValue();
                    cookie.setPath("/");
                    cookie.setMaxAge(RedisKeys.USER_LOGIN_TOKEN.getTime().intValue());
                    response.addCookie(cookie);
                    break;
                }
            }
        }
        return token;
    }
}
